From 4c26dab2cde2901e4806ecc56a8778a80a73a4e7 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Wed, 5 Apr 2006 18:16:10 +0000 Subject: [PATCH] Test the result of acos() for possible errors (gcdist). --- grtcirc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/grtcirc.c b/grtcirc.c index 3676eeaa5..69d1c501d 100644 --- a/grtcirc.c +++ b/grtcirc.c @@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ +#include #include #include "defs.h" @@ -51,7 +52,13 @@ double tomiles( double rads ) { } double gcdist( double lat1, double lon1, double lat2, double lon2 ) { - return acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2)); + double res; + res = acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2)); + if (errno == EDOM) { /* Math argument out of domain of function */ + errno = 0; + return 0; + } + return res; } double linedist(double lat1, double lon1, -- 2.30.2